<template>
  <div class="hello">
    <h1>{{ msg }}</h1>
    <p>
      <input type="text" v-model="username" placeholder="输入账号"><br/>
      <input type="password" v-model="password" placeholder="输入密码"/><br/>
      <input type="button" @click="handleLogin" value="1.使用用户名密码方式统一认证登录" />
    </p>
    <p>
      <button @click="getToken">2.查询本地缓存的access_token</button>
    </p>
    <p>
      <button @click="getUserInfo">3.携带access_token查询用户资源接口</button>
    </p>
    <p>
      <button @click="getResource">4.携带access_token调用一个资源服务器的资源接口</button>
    </p>
    <p>
      <button @click="handleLogout">5.退出登录</button>
    </p>
    <p>
      For a guide and recipes on how to configure / customize this project,<br>
      check out the
      <a href="https://cli.vuejs.org" target="_blank" rel="noopener">vue-cli documentation</a>.
    </p>
    <h3>Installed CLI Plugins</h3>
    <ul>
      <li><a href="https://github.com/vuejs/vue-cli/tree/dev/packages/%40vue/cli-plugin-babel" target="_blank" rel="noopener">babel</a></li>
      <li><a href="https://github.com/vuejs/vue-cli/tree/dev/packages/%40vue/cli-plugin-eslint" target="_blank" rel="noopener">eslint</a></li>
    </ul>
    <h3>Essential Links</h3>
    <ul>
      <li><a href="https://vuejs.org" target="_blank" rel="noopener">Core Docs</a></li>
      <li><a href="https://forum.vuejs.org" target="_blank" rel="noopener">Forum</a></li>
      <li><a href="https://chat.vuejs.org" target="_blank" rel="noopener">Community Chat</a></li>
      <li><a href="https://twitter.com/vuejs" target="_blank" rel="noopener">Twitter</a></li>
      <li><a href="https://news.vuejs.org" target="_blank" rel="noopener">News</a></li>
    </ul>
    <h3>Ecosystem</h3>
    <ul>
      <li><a href="https://router.vuejs.org" target="_blank" rel="noopener">vue-router</a></li>
      <li><a href="https://vuex.vuejs.org" target="_blank" rel="noopener">vuex</a></li>
      <li><a href="https://github.com/vuejs/vue-devtools#vue-devtools" target="_blank" rel="noopener">vue-devtools</a></li>
      <li><a href="https://vue-loader.vuejs.org" target="_blank" rel="noopener">vue-loader</a></li>
      <li><a href="https://github.com/vuejs/awesome-vue" target="_blank" rel="noopener">awesome-vue</a></li>
    </ul>
  </div>
</template>

<script>
import {login,logout, getAccessToken, getUserInfo} from '@/utils/oAuth2PwdLogin'
import axios from 'axios'

export default {
  name: 'HelloWorld',
  props: {
    msg: String
  },
  data() {
    //页面定义字段
    return {
      username:"admin",
      password:"123456",
    }
  },
  methods: {
    //页面方法
    handleLogin() {
      if (this.username == "" || this.password == "") {
        alert("请输入用户名和密码");
      } else {
        login(this.username, this.password)
      }
    },
    getToken() {
      alert(getAccessToken())
    },
    async getUserInfo() {
      const userRes = await getUserInfo()
      alert("获取用户："+JSON.stringify(userRes))
    },
    async getResource() {
      const token = getAccessToken();
      const resource = await axios({
        url: 'http://localhost:8050/resource',
        headers: {
          Accept: 'application/json',
          Authorization: `Bearer ${token}`
        }
      })
      alert("获取资源服务器的资源："+JSON.stringify(resource))
    },
    handleLogout() {
      logout(function (data) {
        alert("退出成功")
      })
    }
  }
}
</script>

<!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped>
h3 {
  margin: 40px 0 0;
}
ul {
  list-style-type: none;
  padding: 0;
}
li {
  display: inline-block;
  margin: 0 10px;
}
a {
  color: #42b983;
}
</style>
